package com.spukmk3me;

import com.spukmk3me.io.FileSystem;
import com.spukmk3me.io.userinput.ButtonInput;
import com.spukmk3me.io.userinput.InputSystem;
import com.spukmk3me.io.userinput.PointerInput;
import com.spukmk3me.resource.ResourceManager;
import com.spukmk3me.scene.Scene;
import com.spukmk3me.sound.SoundPlayer;
import com.spukmk3me.video.VideoAPI;

public abstract class Framework
{
    public static final Framework getSingleton()
    {
        return PLATFORM;
    }
    
    public abstract FileSystem fsys();
    public abstract ResourceManager rman();
    public abstract Scene createScene();
    public abstract VideoAPI vapi();
    public abstract SoundPlayer sndp();
    public abstract PointerInput pnti();
    public abstract ButtonInput btni();
    public abstract InputSystem isys();

    protected static Framework PLATFORM;
}
